home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 May / EnigmA AMIGA RUN 18 (1997)(G.R. Edizioni)(IT)[!][issue 1997-05][EAR-CD II].iso / earcd / dev / c / clib37x.rea < prev    next >
Text File  |  1997-03-02  |  12KB  |  263 lines

  1. Short:    Example.library in 100% C (SAS/Storm/Maxon/...)
  2. Author:   Andreas_Kleinert@t-online.de (SAS/Storm), hhummel@t-online.de (Maxon)
  3. Uploader: Andreas_Kleinert@t-online.de
  4. Type:     dev/c
  5. Replaces: CExecLib#?.lha
  6.  
  7.  
  8.   example.library V37.5 (24.1.97)
  9.  
  10.   An Amiga shared library in 100 % C language - coming with sources.
  11.  
  12.   Compiler Checklist:        Compiler           Support
  13.                              --------------------------
  14.    (see README.<compiler>    SAS/C 6.5x         yes
  15.     for more information)    MaxonC 3.x         yes
  16.                              StormC 2.x         yes
  17.                              DICE 3.x           (not tested)
  18.                              GCC 2.6.x          ./.
  19.                              AztecC             (not tested)
  20.                              vbcc               (not tested)
  21.  
  22.   Original SAS/C and StormC version (C) 1996-97 by Andreas R. Kleinert,
  23.   MaxonC version changes done 1996 by Helmut Hummel. All rights reserved.
  24.   ----------------------------------------------------------------------
  25.   This sample library intends to make Amiga shared library sources
  26.   compileable with any available Amiga C compiler - without any
  27.   changes to the source code.
  28.   And maybe in the future also running under any Amiga compatible
  29.   operating system with any CPU.
  30.  
  31.   The first goal seams to be easily done: nearly any noticeable compiler
  32.   for the Amiga does support generation of libraries with special
  33.   linker commands and pre-generated object files.
  34.  
  35.   But when looking into the details, one will find out, that these
  36.   linker functionality just reduces the influence of the programmer
  37.   on how his sources are handled, that the pre-generated object
  38.   files just originally were done in Assembler, and that each compiler
  39.   does define its own interface definitions and usage rules.
  40.  
  41.   But as a programmer, it is important to have control over the _complete_
  42.   source code and to be able to compiler it _anywhere_ with only
  43.   minor changes, even better without any changes.
  44.  
  45.   Since most Amiga system modules - noticeable Libraries, Devices and
  46.   Resources - do have startup-modules and other larger parts completely
  47.   written in Assembler language, the most important task for getting
  48.   inter-compiler and operating system independant sources in my opinion
  49.   is, to completely migrate the interfaces to C lanuguage (but different
  50.   to AROS, for example, it is most important, to keep the sources running
  51.   under the current 68k AmigaOS in the _first_ place).
  52.  
  53.   This goal basically has been reached already, still missing of
  54.   course are some of the less Amiga-native compilers and of course
  55.   tests with any kind "AmigaOS for PowerPC".
  56.  
  57.   But since Assembler is nearly as portability-hostile as BCPL _today_
  58.   we might be quite close to the goal defined above.
  59.  
  60.   Translate your 68k-assembler library startup-codes smartly
  61.   to C by simply using this source-code as an advice how to do it.
  62.  
  63.   For testing: install the (re)compiled example.library to LIBS: and
  64.   start the test program - it should pop up an requester, then.
  65.  
  66.   If you can submit adjustments for the other compilers as mentioned
  67.   above: feel free to send these.
  68.   ---
  69.   Feel free to use this source for own projects.
  70.  
  71.   It is allowed to be spread and distributed anywhere, as far
  72.   as my consent is concerned.
  73.  
  74.   Amiga Technologies, or the current owner of the technologie,
  75.   is allowed to always put this source on their newest
  76.   Developer CD-ROM.
  77.  
  78.   Thanks and credits will always be appreciated - for example,
  79.   you MAY, but NEED NOT:
  80.   give me credits in your program's docs, send me keyfiles for
  81.   your programs using the library, and so on.
  82.   But that's simply voluntarily.
  83.  
  84.    _________________________________________________________
  85.   |      You may reach me the following way.                |
  86.   |    Send bug-reports, money or whatever to:              |
  87.   |---------------------------------------------------------|
  88.   |        * SuperView Development & Registration *         |
  89.   |          * DRAFU Development & Registration *           |
  90.   |       * Image Engineer Registration Site Europe *       |
  91.   |                                                         |
  92.   |                                                         |
  93.   |                  PerSuaSiVe SoftWorX                    |
  94.   |                                                         |
  95.   |                  Andreas R. Kleinert                    |
  96.   |                  Sandstrasse 1                          |
  97.   |                  D-57072 Siegen                         |
  98.   |                  Germany, Europe                        |
  99.   |                                                         |
  100.   | Any snail mail to the old address will still be routed. |
  101.   |                                                         |
  102.   |                  Phone:  +49-271-22869 also FAX + AM    |
  103.   |                          +49-271-22838                  |
  104.   |                                                         |
  105.   |                  Weekdays after 17.00h.                 |
  106.   |                                                         |
  107.   |         When calling via phone you may leave a message, |
  108.   |         if I'm not available - but don't expect me      |
  109.   |         calling back to USA, Australia, ... since       |
  110.   |         german phone rates are HIGHLY expensive.        |
  111.   |_________________________________________________________|
  112.  
  113.     http://home.t-online.de/home/Andreas_Kleinert/
  114.  
  115.   eMail:
  116.  
  117.         Please send binaries via ARK@COB.wwbnet.de, and keep
  118.         them smaller than 16 KB. Please think twice before
  119.         sending them - my postbox is not unlimited in size.
  120.  
  121.            - Fido    Andreas Kleinert 2:2457/350.18
  122.            - Usenet
  123.                      Andreas_Kleinert@superview.ftn.sub.org  (Fido-Gate)
  124.                      Andreas_Kleinert@t-online.de            (T-Online)
  125.                      ARK@COB.wwbnet.de                       (Z-Netz)
  126.                      ARK@amigaworld.com                      (AmigaWorld)
  127.  
  128.            - If nothing else works, try one of these public
  129.              Fido-Usenet gateways:
  130.  
  131.                In Germany:
  132.                  Andreas_Kleinert@p18.f350.n2457.z2.fido.sub.org
  133.  
  134.                From USA or elsewhere:
  135.                  Andreas_Kleinert@p18.f350.n2457.z2.fidonet.org
  136.  
  137.         Please note, that the "superview.ftn.sub.org"
  138.         domain will perhaps be renamed soon
  139.  
  140.  
  141.  History:
  142.  
  143.  V37.5 (24.1.97) :  - rewrote docs
  144.                     - added basic support for compiler independent
  145.                       register naming and SAS/C keyword replacements
  146.                       (compiler.h). Thus sources now should be easily
  147.                       adaptable for GCC as well.
  148.  
  149.  V37.4 (8.1.97) :   - added FD file
  150.                     - added new pragma file (and dir) as
  151.                       include/pragma/example_lib.h
  152.                       which works with Aztec, Maxon, Storm,
  153.                       DICE and SAS C compilers.
  154.                       Thanks to fd2pragma and Dirk Stoecker.
  155.                     - some fixes to the readme files
  156.                     - updated eMail list
  157.  
  158.  V37.3 (3.1.97) :   - slightly changed SCOPTIONS
  159.                     - fixed some style things (APTR and library casts)
  160.                     - changed note about library opening at L_OpenLibs()
  161.                     - now compileable with StormC 2.0 as well
  162.                       (not tested with 1.1) - see readme file for StormC
  163.                     - added project file for StormC 2.0, smakefile still
  164.                       present - select, which one you'd like to use
  165.  
  166.  V37.2 (12.12.96) : - applied some more changes and fixes
  167.                       (-> suggested by Helmut Hummel)
  168.                     - added icons
  169.                       (-> from Helmut Hummel)
  170.  
  171.  V37.1 (4.12.96) : - bumped version to V37
  172.                    - added MaxonC 3.x version by applying changes
  173.                      to the SAS/C sources and adding Maxon
  174.                      specific make and configuration files
  175.                      (-> all done by Helmut Hummel, see Readme.MAXON)
  176.                    - added StormC support
  177.                    - yet missing: DICE, Aztec, GNU. Who does it ?
  178.  
  179.  V1.4 (30.11.96) : - added SAS/C specific Ctrl-C disabling code
  180.                    - made some workarounds compiler sensitive
  181.                    - redone all with SAS/C V6.57
  182.                    - 944 Bytes ;-)
  183.  
  184.  V1.3 (13.9.96) :  - when starting lib as executable, -1 must be returned
  185.                    - now caching SysBase
  186.                    - added some comments, where changes should not
  187.                      be applied
  188.                    - added note about sharing library bases
  189.                    - documented and modified sample function,
  190.                      so that correct a0/a1/d0/d1 and a6 usage becomes
  191.                      more obviously and verbose
  192.                    - still 940 bytes ;-)
  193.  
  194.  V1.2 (5.9.96)  :  - fixed some things resulting out of a
  195.                      discussion in Z-Netz
  196.  
  197.  V1.1 (1.9.96)  :  - small changes in style
  198.                      (only bumped versions of changed modules):
  199.                        o moved "examplebase.h" to include/example/
  200.                          (so also adjusted LibInit.c, StartUp.c
  201.                           and SCOPTIONS for reflecting that)
  202.                        o SampleFuncs.h did contain wrong prototype
  203.                          (did not matter, since only used for
  204.                           ULONG function table within StartUp.c)
  205.                        o explicitely __aligned ROMTag structure
  206.  
  207.  V1.0 (14.8.96) : - first release
  208.  
  209.  
  210.  ---
  211.  All mentioned trademarks are subjects to their owners.
  212.  
  213.  
  214. ============================= Archive contents =============================
  215.  
  216. Original  Packed Ratio    Date     Time    Name
  217. -------- ------- ----- --------- --------  -------------
  218.     1720     433 74.8% 11-Dec-96 15:48:02  c_lib.info
  219.     1720     433 74.8% 11-Dec-96 15:39:54 +bin.info
  220.     5248    3480 33.6% 05-Dec-96 11:46:22 +TestExampleLib
  221.      450     230 48.8% 11-Dec-96 15:49:34 +TestExampleLib.info
  222.      944     591 37.3% 25-Jan-97 11:07:50 +example.library
  223.     1201     683 43.1% 25-Jan-97 10:21:22 +Readme.MAXON
  224.      274     191 30.2% 25-Jan-97 10:21:18 +Readme.SAS
  225.      915     480 47.5% 25-Jan-97 10:21:12 +Readme.STORM
  226.     1720     433 74.8% 11-Dec-96 15:39:56 +source.info
  227.      125     117  6.4% 08-Jan-97 19:09:50 +example.fd
  228.      425     247 41.8% 05-Dec-96 11:45:24 +example_protos.h
  229.      289     185 35.9% 05-Dec-96 11:44:58 +example.h
  230.      654     319 51.2% 11-Dec-96 15:00:22 +examplebase.h
  231.      477     247 48.2% 08-Jan-97 19:10:26 +example_lib.h
  232.      311     207 33.4% 05-Dec-96 11:45:38 +example_pragmas.h
  233.      330     207 37.2% 05-Dec-96 11:45:50 +example.h
  234.     1720     433 74.8% 11-Dec-96 15:39:42 +lib_source.info
  235.     2844     941 66.9% 25-Jan-97 10:51:48 +compiler.h
  236.      944     591 37.3% 25-Jan-97 11:07:48 +example.library
  237.     3167    1195 62.2% 25-Jan-97 11:07:18 +LibInit.c
  238.      888     542 38.9% 25-Jan-97 11:07:42 +LibInit.o
  239.       25      25  0.0% 05-Dec-96 12:07:46 +make_storm.bat
  240.      419     164 60.8% 11-Dec-96 15:31:14 +makefile.MAXON
  241.      347     232 33.1% 05-Dec-96 11:36:28 +makefile.MAXON.info
  242.      381     232 39.1% 05-Dec-96 11:36:28 +mcpp.SESSION
  243.     1329     687 48.3% 25-Jan-97 10:26:48 +SampleFuncs.c
  244.      335     229 31.6% 25-Jan-97 10:26:08 +SampleFuncs.h
  245.      216     194 10.1% 25-Jan-97 11:07:48 +SampleFuncs.o
  246.      128     105 17.9% 03-Jan-97 15:29:36 +SCOPTIONS
  247.      395     148 62.5% 05-Dec-96 11:36:28 +smakefile
  248.       95      85 10.5% 05-Dec-96 11:36:28 +smakefile.wth
  249.     4335    1343 69.0% 25-Jan-97 10:27:16 +StartUp.c
  250.     1120     598 46.6% 25-Jan-97 11:07:38 +StartUp.o
  251.     1757     595 66.1% 03-Jan-97 15:44:56 +storm_project.¶
  252.      624     350 43.9% 03-Jan-97 15:44:56 +storm_project.¶.info
  253.      622     269 56.7% 03-Jan-97 15:44:30 +storm_smakefile
  254.      119     100 15.9% 05-Dec-96 11:36:28 +SCOPTIONS
  255.      256     105 58.9% 05-Dec-96 11:36:28 +smakefile
  256.     5248    3480 33.6% 05-Dec-96 11:46:22 +TestExampleLib
  257.      673     374 44.4% 05-Dec-96 11:46:12 +TestExampleLib.c
  258.      835     394 52.8% 05-Dec-96 11:36:28 +TestExampleLib.info
  259.      300     242 19.3% 05-Dec-96 11:46:20 +TestExampleLib.o
  260.     9452    3483 63.1% 25-Jan-97 11:21:28 +ReadMe_First
  261. -------- ------- ----- --------- --------
  262.    55377   25619 53.7% 26-Jan-97 12:29:46   43 files
  263.